package com.example.zqr.service;
import com.example.zqr.pojo.User;

import java.util.List;


public interface UserService {

    /**
     * 列出所有的用户实体。
     *
     * @return 返回一个包含所有用户实体的列表。
     */
    List<User> listAll();

    /**
     * 创建一个新的用户实体。
     *
     * @param user 要创建的用户实体。
     * @return 返回创建操作影响的行数。
     */
    int create(User user);

    /**
     * 更新一个现有的用户实体。
     *
     * @param userid 要更新的用户的唯一标识符。
     * @param user   包含更新信息的用户实体。
     * @return 返回更新操作影响的行数。
     */
    int update(String userid, User user);

    /**
     * 删除一个用户实体。
     *
     * @param userid 要删除的用户的唯一标识符。
     * @return 返回删除操作影响的行数。
     */
    int delete(String userid);

    /**
     * 分页列出用户实体。
     *
     * @param pageNum  页码。
     * @param pageSize 每页显示的用户数量。
     * @return 返回包含指定页码和页面大小的用户实体列表。
     */
    List<User> list(int pageNum, int pageSize);

    /**
     * 根据唯一标识符获取一个用户实体。
     *
     * @param userid 用户的唯一标识符。
     * @return 返回对应的用户实体。
     */
    User get(String userid);

    /**
     * 根据用户名和密码获取用户实体。
     *
     * @param user 包含用户名和密码的用户实体。
     * @return 返回匹配用户名和密码的用户实体，如果不存在则返回null。
     */
    User getUserByUsernamePassword(User user);
}
